import { EradicateRuleList } from "./eradicate ";
import { Flake82020RuleList } from "./flake82020";
import { Flake8AnnotationsRuleList } from "./flake8Annotations";
import { Flake8BanditRuleList } from "./flake8Bandit";
import { Flake8BlindExceptRuleList } from "./flake8BlindExcept";
import { Flake8BooleanTrapRuleList } from "./flake8BooleanTrap";
import { Flake8BugbearRuleList } from "./flake8Bugbear";
import { Flake8BuiltinsRuleList } from "./flake8Builtins";
import { Flake8CommasRuleList } from "./flake8Commas";
import { Flake8ComprehensionsRuleList } from "./flake8Comprehensions";
import { Flake8DatetimezRuleList } from "./flake8Datetimez";
import { Flake8DebuggerRuleList } from "./flake8Debugger";
import { Flake8DjangoRuleList } from "./flake8Django";
import { Flake8ErrmsgRuleList } from "./flake8Errmsg";
import { flake8ExecutableRuleList } from "./flake8Executable";
import { flake8GettextRuleList } from "./flake8Gettext";
import { Flake8ImplicitStrConcatRuleList } from "./flake8ImplicitStrConcat";
import { Flake8ImportConventionsRuleList } from "./flake8ImportConventions";
import { Flake8LoggingFormatRuleList } from "./flake8LoggingFormat";
import { Flake8NoPep420RuleList } from "./flake8NoPep420";
import { Flake8PieRuleList } from "./flake8Pie";
import { Flake8PrintRuleList } from "./flake8Print";
import { Flake8PyiRuleList } from "./flake8Pyi";
import { Flake8PytestStyleRuleList } from "./flake8PytestStyle";
import { Flake8QuotesRuleList } from "./flake8Quotes";
import { Flake8RaiseRuleList } from "./flake8Raise";
import { Flake8ReturnRuleList } from "./flake8Return";
import { Flake8SelfRuleList } from "./flake8Self";
import { Flake8SimplifyRuleList } from "./flake8Simplify";
import { Flake8TidyImportsRuleList } from "./flake8TidyImports";
import { Flake8TypeCheckingRuleList } from "./flake8TypeChecking";
import { Flake8UnusedArgumentsRuleList } from "./flake8UnusedArguments";
import { Flake8UsePathlibRuleList } from "./flake8UsePathlib";
import { IsortRuleList } from "./isort";
import { MccabeRuleList } from "./mccabe";
import { NumPySpecificRuleList } from "./numPySpecific";
import { PandasVetRuleList } from "./pandasVet";
import { Pep8NamingRuleList } from "./pep8Naming";
import { PycodeStyleErrorRuleList, PycodeStyleWarnRuleList } from "./pycodestyle";
import { PydocstyleRuleList } from "./pydocstyle";
import { PyflakesRuleList } from "./pyflakes";
import { PygrepHooksRuleList } from "./pygrepHooks";
import { PylintConventionRuleList } from "./pylintConvention";
import { PylintErrorRuleList } from "./pylintError";
import { PylintRefactorRuleList } from "./pylintRefactor";
import { PylintWarningRuleList } from "./pylintWarning";
import { PyupgradeRuleList } from "./pyupgrade";
import { RuffSpecificRuleList } from "./ruffSpecific";
import { TryceratopsRuleList } from "./tryceratops";
import { RuleGroup } from "./types";

export const RuleGroupList: RuleGroup[] = [
    {
        key: "F",
        name: "Pyflakes",
        ruleList: PyflakesRuleList,
    },
    {
        key: "E",
        name: "pycodestyle Error",
        ruleList: PycodeStyleErrorRuleList,
    },
    {
        key: "W",
        name: "pycodestyle Warning ",
        ruleList: PycodeStyleWarnRuleList,
    },
    {
        key: "C90",
        name: "mccabe",
        ruleList: MccabeRuleList,
    },
    {
        key: "I",
        name: "isort",
        ruleList: IsortRuleList,
    },
    {
        key: "N",
        name: "pep8-naming",
        ruleList: Pep8NamingRuleList,
    },
    {
        key: "D",
        name: "pydocstyle",
        ruleList: PydocstyleRuleList,
    },
    {
        key: "UP",
        name: "pyupgrade",
        ruleList: PyupgradeRuleList,
    },
    {
        key: "YTT",
        name: "flake8-2020",
        ruleList: Flake82020RuleList,
    },
    {
        key: "ANN",
        name: "flake8-annotations",
        ruleList: Flake8AnnotationsRuleList,
    },
    {
        key: "S",
        name: "flake8-bandit",
        ruleList: Flake8BanditRuleList,
    },
    {
        key: "BLE",
        name: "flake8-blind-except",
        ruleList: Flake8BlindExceptRuleList,
    },
    {
        key: "FBT",
        name: "flake8-boolean-trap",
        ruleList: Flake8BooleanTrapRuleList,
    },
    {
        key: "B",
        name: "flake8-bugbear",
        ruleList: Flake8BugbearRuleList,
    },
    {
        key: "A",
        name: "flake8-builtins",
        ruleList: Flake8BuiltinsRuleList,
    },
    {
        key: "COM",
        name: "flake8-commas",
        ruleList: Flake8CommasRuleList,
    },
    {
        key: "C4",
        name: "flake8-comprehensions",
        ruleList: Flake8ComprehensionsRuleList,
    },
    {
        key: "DTZ",
        name: "flake8-datetimez",
        ruleList: Flake8DatetimezRuleList,
    },
    {
        key: "T10",
        name: "flake8-debugger",
        ruleList: Flake8DebuggerRuleList,
    },
    {
        key: "DJ",
        name: "flake8-django",
        ruleList: Flake8DjangoRuleList,
    },
    {
        key: "EM",
        name: "flake8-errmsg",
        ruleList: Flake8ErrmsgRuleList,
    },
    {
        key: "EXE",
        name: "flake8-executable",
        ruleList: flake8ExecutableRuleList,
    },
    {
        key: "ISC",
        name: "flake8-implicit-str-concat",
        ruleList: Flake8ImplicitStrConcatRuleList,
    },
    {
        key: "ICN",
        name: "flake8-import-conventions",
        ruleList: Flake8ImportConventionsRuleList,
    },
    {
        key: "G",
        name: "flake8-logging-format",
        ruleList: Flake8LoggingFormatRuleList,
    },
    {
        key: "INP",
        name: "flake8-no-pep420",
        ruleList: Flake8NoPep420RuleList,
    },
    {
        key: "PIE",
        name: "flake8-pie",
        ruleList: Flake8PieRuleList,
    },
    {
        key: "T20",
        name: "flake8-print",
        ruleList: Flake8PrintRuleList,
    },
    {
        key: "PYI",
        name: "flake8-pyi",
        ruleList: Flake8PyiRuleList,
    },
    {
        key: "PT",
        name: "flake8-pytest-style",
        ruleList: Flake8PytestStyleRuleList,
    },
    {
        key: "Q",
        name: "flake8-quotes",
        ruleList: Flake8QuotesRuleList,
    },
    {
        key: "RSE",
        name: "flake8-raise",
        ruleList: Flake8RaiseRuleList,
    },
    {
        key: "RET",
        name: "flake8-return",
        ruleList: Flake8ReturnRuleList,
    },
    {
        key: "SLF",
        name: "flake8-self",
        ruleList: Flake8SelfRuleList,
    },
    {
        key: "SIM",
        name: "flake8-simplify",
        ruleList: Flake8SimplifyRuleList,
    },
    {
        key: "TID",
        name: "flake8-tidy-imports",
        ruleList: Flake8TidyImportsRuleList,
    },
    {
        key: "TCH",
        name: "flake8-type-checking",
        ruleList: Flake8TypeCheckingRuleList,
    },
    {
        key: "INT",
        name: "flake8-gettext",
        ruleList: flake8GettextRuleList,
    },
    {
        key: "ARG",
        name: "flake8-unused-arguments",
        ruleList: Flake8UnusedArgumentsRuleList,
    },
    {
        key: "PTH",
        name: "flake8-use-pathlib",
        ruleList: Flake8UsePathlibRuleList,
    },
    {
        key: "ERA",
        name: "eradicate ",
        ruleList: EradicateRuleList,
    },
    {
        key: "PD",
        name: "pandas-vet",
        ruleList: PandasVetRuleList,
    },
    {
        key: "PGH",
        name: "pygrep-hooks",
        ruleList: PygrepHooksRuleList,
    },
    {
        key: "PLC",
        name: "Pylint Convention ",
        ruleList: PylintConventionRuleList,
    },
    {
        key: "PLE",
        name: "Pylint Error",
        ruleList: PylintErrorRuleList,
    },
    {
        key: "PLR",
        name: "Pylint Refactor",
        ruleList: PylintRefactorRuleList,
    },
    {
        key: "PLW",
        name: "Pylint Warning",
        ruleList: PylintWarningRuleList,
    },
    {
        key: "TRY",
        name: "tryceratops",
        ruleList: TryceratopsRuleList,
    },
    {
        key: "NPY",
        name: "NumPy-specific rules",
        ruleList: NumPySpecificRuleList,
    },
    {
        key: "RUF",
        name: "Ruff-specific rules",
        ruleList: RuffSpecificRuleList,
    },
];

